home *** CD-ROM | disk | FTP | other *** search
/ The Original Shareware 1.1 / The Original Shareware (WeMake CDs)(Volume 1.1)(CDs, Inc)(1993).iso / 7 / szmod141.zip / SZMODEM.DOC < prev    next >
Text File  |  1991-01-29  |  39KB  |  810 lines

  1. SZMODEM ver 1.41
  2. -----------------
  3. By Scott M. Baker
  4.  
  5.  
  6. What is SZModem?
  7.  
  8.          SZModem is a zmodem-compatible protocol with a few added features. It
  9.    is fully compatible with normal zmodem, but adds special capabilities both
  10.    when talking to normal zmodems and while talking to other copies of
  11.    SZModem.
  12.          The main idea behind SZModem is that you should be able to do other
  13.    things while the transfer is taking place. Rather than have your computer
  14.    tied up for an hour downloading a file, you can move around in the SDOS
  15.    window and do directory maintenance, etc...
  16.  
  17. What will it do?
  18.  
  19.          While SZModem is transferring a file, you may do the following:
  20.  
  21.       Connected to a "normal" zmodem such as DSZ.
  22.  
  23.           - List files marked for upload
  24.           - List files received as they are received
  25.           - Uses SDOS (simulated dos) to view directories, copy files,
  26.             etc while the transfer is taking place.
  27.           - View file contents as the file is being received (good for
  28.             text files)
  29.           - Play single-player games while transferring.
  30.           - Built in mail reader allows sysops who are using a BBS program
  31.             that uses FIDO message formats to read mail while transferring.
  32.  
  33.       Connected to another copy of SZModem.
  34.  
  35.           - All of the above capabilities
  36.           - A "chat" mode allows the two sides to talk to each other.
  37.           - Play multiplayer games such as Four-In-A-Row
  38.           - The sender will automatically send a "advance transfer list"
  39.             listing the files to be sent. This way, the receiver knows
  40.             what he is receiving.
  41.           - SZTurbo option allows SZModem to pass flow control characters
  42.             unaltered across the modem. This allows for up to a four percent
  43.             effeciency gain over normal Zmodem.
  44.           - Ability to use large zmodem packet lengths - up to 2048 bytes
  45.             at 2400 baud and 4096 bytes for higher speeds.
  46.           - LZW compression routines allow significant efficiency improvements
  47.             for text files, ASCII data, etc.
  48.  
  49. Command specifics
  50. -----------------
  51.  
  52.    F1 - Transfer (send) list
  53.  
  54.          This command will produce a windowed list of the files that have
  55.      been sent, aborted, marked for sending, etc. Included is the file
  56.      name, size, and all other pertinant information. You may use the up
  57.      and down arrows if necessary to scroll the list.
  58.          Pressing F1 again (i.e. while you are already in TLIST) will toggle
  59.      between the file-information list and the file-description list.
  60.  
  61.    F2 - Received file list
  62.  
  63.          This command will produce a listing of the files are have been
  64.      received. Similar to the "F1" list above, you may use the up/down
  65.      arrows to scroll the list. THe list is updated as files are received.
  66.          If you are connected to another copy of SZModem, the sender
  67.      will transmit a special "advance transfer list" containing a listing
  68.      of the files that will be sent. This list will be displayed with the
  69.      F2 command.
  70.          As with F1 above, pressing F2 again will toggle betweem the file
  71.      information display and the file description display.
  72.  
  73.    F3 - SDOS (simulated dos)
  74.  
  75.          SDOS is a special dos emulator that lets you perform a variety of
  76.      operations while the transfer is taking place. You can copy/move files,
  77.      list directories, change attributes, etc - most of the common things you
  78.      do with normal dos.
  79.          You may get a listing of supported SDOS commands by typing "HELP"
  80.      at the dos prompt. Typing help with a command name (i.e. HELP DIR) will
  81.      display help for that specific command.
  82.          Most SDOS commands are pseudo-multitasked as to not interfere with
  83.      the transfer, although with high speed modems (i.e. 14,400 baud and
  84.      up) the transfer may slow down during disk-intensive operations.
  85.  
  86.    F4 - COMM PARAMS
  87.  
  88.          This command will pop up a display of the current communications
  89.      parameters - baud rate, parity, buffer status, etc. It can be useful in
  90.      debugging difficulties.
  91.  
  92.    F5 - VIEW
  93.  
  94.          Pressing F5 will allow you to "view" the transfer as it is taking
  95.      place. You will actually see the characters of the file, zmodem
  96.      handshaking, and line noise as it takes place.
  97.          If you press F5 while you are already in the view window, you will
  98.      toggle the view mode. There are 6 different modes. Here is a listing:
  99.  
  100.            1 - Direct ascii printing of characters as they are sent or recvd
  101.            2 - Ascii print only RECEIVED characters
  102.            3 - Ascii print only TRANSMITTED characters
  103.            4 - HEX printing of transmitted and received characters
  104.            5 - HEX printing of only received characters
  105.            6 - HEX printing of only transmitted characters
  106.  
  107.          The modes will cycle one at a time each time you press F5. Initially,
  108.      this whole idea of the view mode was simply a debugging option for me,
  109.      but I figure some users might like to watch the transfer taking place.
  110.  
  111.    F6 - MESSAGES
  112.  
  113.          The message display shows a log of the various messages that SZModem
  114.      displays on the screen - CRC Error, Waiting for ZRINIT, stuff like that.
  115.  
  116.    F7 - CHAT
  117.  
  118.          This command can only be used when two SZModems are connected to
  119.      each other - it won't work with a normal Zmodem. The chat mode allows
  120.      you to talk to the user at the other end of the transfer. The screen
  121.      will be split into two windows - one for what you type, one for what
  122.      the other guy types.
  123.          Pressing CTRL-G will page the other user if he isn't at his
  124.      terminal. The page will beep for thirty seconds, one beep every
  125.      three seconds.
  126.  
  127.    F8 - GAMES
  128.  
  129.          The games menu will be displayed and you can select a game to play
  130.      while the transfer is taking place. There are two kinds of games -
  131.      single player games which to play by yourself and multiplayer games
  132.      in which you play against the guy on the other end.
  133.          The single player games may be player no matter what you are
  134.      connected to, but the multiplayer games require you to be connected to
  135.      another copy of SZModem.
  136.  
  137.    F9 - MAIL READER
  138.  
  139.          This is a feature designed to be used by the sysops of Bulletin
  140.      Boards which have a FIDO compatible message format. (See the below
  141.      section on "The Mail Reader" for info on setting up this feature)
  142.          By pressing F9, the sysop will be allowed to read messages in the
  143.      chosen message base. There are several additional UNLISTED keys available
  144.      in this window:
  145.  
  146.          "N"  Move forward one message
  147.          "P"  Move backwards one message
  148.       <Space> If the message is more than one screen, this will scroll the
  149.               window.
  150.  
  151.    F10 - EXIT
  152.  
  153.          This brings you the exit option which aborts all files and returns
  154.      you to the DOS prompt.
  155.  
  156. COMMAND LINE OPTIONS
  157. --------------------
  158.        SZModem was designed specially to have a command line similar to the
  159. popular DSZ Zmodem protocol. This way users with an understanding of DSZ
  160. can easily set up SZModem. The options area as follows:
  161.  
  162. "SZMODEM <options> <transfer type> <filenames>"
  163.  
  164. Options can be any one of the following:
  165.  
  166.    "PORT x"     specifies using comport x. (i.e. "PORT 2" would use com2)
  167.  
  168.    "SPEED x"    specifies the baud rate (i.e. "SPEED 2400 would use 2400 baud)
  169.  
  170.    "/NOLOG"     disables logging to the "SZMODEM.LOG" file.
  171.  
  172.    "/M"         monochrome mode.
  173.  
  174.    "/DORINFO x" Specifies the node number of a dorinfo.def file to grab the
  175.                 user's name from. If you specify this option, SZModem will
  176.                 load in the dorinfo, get the user name, and display it in
  177.                 the screen so you know who is downloading. (I.e. specifying
  178.                 "/DORINFO 1" would load in "DORINFO1.DEF")
  179.  
  180.    "/INSIZE x"  Specifies the size (in bytes) of the internal comm input
  181.                 buffer. (Note: not used if using fossil)
  182.  
  183.    "/OUTSIZE x" Specifies the size (in bytes) of the internal comm output
  184.                 buffer. (Note: Not used if using fossil)
  185.  
  186.    "/SZPATH x"  Specifies a path to which the SZXFER$$.LST and SZMODEM.LOG
  187.                 files will be written to. If not specified, the files will
  188.                 be created in the current directory.
  189.  
  190.  "/DELAYTIME x" SZModem by default will wait 5 seconds at the end of
  191.                 transfer for a keypress to before exiting. BBS sysops may
  192.                 wish to lower this time for faster operation. The "x"
  193.                 specifies the default time to delay, which may be
  194.                 from 0-30 seconds.
  195.  
  196.    "/SZTURBO"   Causes SZModem to attempt to use the SZTurbo option if
  197.                 possible. If SZTurbo is to operate, both sides must have this
  198.                 option set. See "SZTURBO" below.
  199.  
  200.    "/NBS"       This stands for "normal block size". By default, if two
  201.                 SZmodem's are connected, they will allow the Zmodem packet
  202.                 length to rise to 2048 bytes/packet at 2400 baud or 4096
  203.                 bytes/packet for higher speeds. Specifying "/NBS" will force
  204.                 SZModem to use block lengths of 1024 bytes or less.
  205.  
  206.    "/NORBL"     Will cause your copy of SZModem to refuse to accept LARGE
  207.                 format (i.e. embedded file description info) advance transfer
  208.                 lists.
  209.  
  210.    "/NOSBL"     Will cause your copy of SZModem to refuse to send LARGE
  211.                 format (i.e. embedded file description info) advance transfer
  212.                 lists.
  213.  
  214.    "/FL"        This will cause SZModem to create an additional log file
  215.                 called "FILELOG.TXT". This log is intended to allow users to
  216.                 keep a record of files they receive. It only logs RECEIVED
  217.                 files and it includes the name, size, and optional description
  218.                 of the file.
  219.  
  220.    "/NOPAGE"    This will prevent another copy of SZModem from paging your
  221.                 copy.
  222.  
  223.   "/FILEDESC x" This specifies an additional FILEDESC list of file
  224.                 descriptions. "x" is the path and filename of the file. See
  225.                 "Large Advance Transfer Lists" for more info.
  226.  
  227.    "/CHECKSNOW" If you are using a CGA card and it gets snow, try using this
  228.                 option.
  229.  
  230.    "/NOCOMP"    This will force SZModem to disable file compression.
  231.  
  232.  "/FIDOAREA x"  Specifies a fido-format message base that SZModem's built
  233.                 in mail reader will allow the sysop to read while a transfer
  234.                 is taking place. The "x" is the path. (i.e. "/FIDOAREA
  235.                 I:\BINKLEY\MESSAGES").
  236.  
  237.    "/EGA"       If you have an EGA or VGA display, this switch will enable the
  238.                 43/50 line modes.
  239.  
  240.    "/DL"        This option will cause SZModem to create a DSZ.LOG file. This
  241.                 file will contain a DSZ-style log. This option may be used
  242.                 with BBS programs that require a DSZ.LOG file to operate their
  243.                 external protocols. SZMODEM also will enable the DSZ.LOG if
  244.                 the environment variable "DSZLOG=xxx" is used.
  245.  
  246.    "/CFGPATH x" Specifies a path to where the configuration file (SZMODEM.CFG)
  247.                 can be found. "x" is the path with or without a trailing
  248.                 backslash. It doesn't matter.
  249.  
  250.    "/HARD"      This turns on HARD flow control. This means that when your
  251.                 modem drops CTS, SZModem will stop transmitting until CTS
  252.                 is raised again. This option is frequently used with high
  253.                 speed modems and/or locked baud rates.
  254.  
  255.    "/SOFT"      This is similar to the above HARD flow control, but uses
  256.                 ascii characters to control the flow. Namely, the Xon and
  257.                 Xoff characters - when XOFF is received, SZModem will stop
  258.                 transmitting and when XON is received, SZModem will resume.
  259.                 (Note: SZTURBO mode is not available with this type of
  260.                 handshaking)
  261.  
  262.    "/LOCK x"    Specifies a locked baud rate. The com port will be set to
  263.                 the baud rate specified by this parameter, and the baud rate
  264.                 specified by "BAUD x" above will be used for estimation
  265.                 purposes.
  266.  
  267. Transfer type may be any one of the following:
  268.  
  269.    "RZ"        receive zmodem file(s)
  270.    "SZ"        send zmodem file(s)
  271.  
  272. Filenames are interpreted as follows:
  273.  
  274.    Send mode:  Multiple filespecs may be present. Wildcards are allowed.
  275.  
  276.    Recv mode:  A path to the receive directory is expected. No filenames
  277.                are necessary.
  278.  
  279. EXAMPLES:
  280. ---------
  281.  
  282. "SZMODEM PORT 4 SPEED 9600 SZ \UPLOAD\*.ZIP"
  283.  
  284.        Send all the .ZIP files in you upload directory using COM4 at
  285.   9600 baud.
  286.  
  287.  
  288. "SZMODEM SPEED 1200 RZ"
  289.  
  290.        Receive files at 1200 baud using COM1. Store them in the current
  291.   directory.
  292.  
  293.  
  294. "SZMODEM PORT 3 RZ \TEMP"
  295.  
  296.        Receive files at 2400 baud using COM2. Store them in the "\TEMP"
  297.   directory.
  298.  
  299. Files
  300. -----
  301.        SZMODEM.EXE   -  The executable code for SZModem. This is what is
  302.                         called to initiate a transfer. This version requires
  303.                         approx 160-180k of memory.
  304.  
  305.        SZMODOVR.EXE  -  This is the same as SZMODEM.EXE, but is an overlay
  306.                         version. Portions of the code will be swapped to/from
  307.                         disk to conserve memory. This version requires
  308.                         approx 120-150k of memory.
  309.  
  310.        SZMODSML.EXE  -  This version will save even more over the above
  311.                         version. Certain features have been left out (such
  312.                         as the game module and the mail readter), but if you
  313.                         really are short on memory, give this a try. Requires
  314.                         between 100-120k of ram.
  315.  
  316.        SZCONFIG.EXE  -  This program allows you to set a variety of
  317.                         SZModem's default options and store them in the
  318.                         SZMODEM.CFG file.
  319.  
  320.       *SZMODEM.CFG   -  This file is created by the above SZCONFIG.EXE. It
  321.                         contains default option values for various SZMODEM
  322.                         parameters. Basically, you can use SZCONFIG.EXE to
  323.                         put the options here rather than specifying them on
  324.                         the command line.
  325.  
  326.        SZMODEM.DOC   -  These docs that you are reading.
  327.  
  328.        SZMODEM.TRV   -  A "trivia" file which lets you play trivia during
  329.                         SZModem.
  330.  
  331.        SZMODEM.HLP   -  An ASCII help file which contains help on the SimDos
  332.                         commands.
  333.  
  334.       *SZMODEM.LOG   -  A log created which contains a listing of files
  335.                         transferred, dates/times, etc. May be disabled
  336.                         with the "/NOLOG" option. You may set the
  337.                         path this file will be placed in with the "/SZPATH"
  338.                         option.
  339.  
  340.       *DSZ.LOG       -  If the /DL parameter was specified, this file will
  341.                         be created to allow for compatibility with the
  342.                         popular DSZ protocol.
  343.  
  344.       *SZXFER$$.LST  -  This is the "advance transfer list" file. It is
  345.                         created by the sender and if the receiver is also a
  346.                         zmodem, is sent to so the receiver may have a list
  347.                         of files to be received ahead of time.
  348.  
  349.       *FILELOG.TXT   -  If the "/FL" parameter is specified, this will will
  350.                         contain a listing of all files received (downloaded)
  351.                         by SZModem. Included is the file name, size, and
  352.                         optional description.
  353.  
  354.       (* Denotes file is CREATED by SZModem, not distributed with the package)
  355.  
  356. Hardware Requirements
  357. ---------------------
  358.      Processor: 10mhz 80286 or greater suggested, but will work with any
  359.                 IBM-PC compatible machine.
  360.  
  361.      Display:   Anything should work
  362.  
  363.      Memory:    SZMODEM.EXE  160k-180k
  364.                 SZMODOVR.EXE 120k-150k
  365.                 SZMODSML.EXE 100k-120k
  366.  
  367. The Overlay Version
  368. -------------------
  369.          Two versions of SZMODEM are distributed - SZMODEM.EXE and
  370.    SZMODOVR.EXE. Both versions have the same features, but SZMODOVR will swap
  371.    its code to/from disk to conserve memory space. This swapping allows
  372.    SZMODOVR to use between 20-30k less memory than SZMODEM.EXE.
  373.          There is only one problem. Swapping code requires time. So, if you
  374.    perform many SimDos commands and other options, disk usage may be
  375.    increased, slowing down the transfer. The best choice is to use SZMODEM.EXE
  376.    if it will fit into memory and SZMODOVR.EXE if it will not.
  377.  
  378. Flow Control, Handshaking, High-Speed Modems, Locked baud
  379. ---------------------------------------------------------
  380.          SZModem includes two command line options for controlling computer-
  381.    to-modem handshaking. This handshaking allows the modem to send some form
  382.    of signal to SZModem to tell SZModem to stop sending data if the modem's
  383.    buffer becomes overflowed.
  384.          If you are using a 2400 baud modem or lower, and are sending data to
  385.    this modem at 2400 baud, then no handshaking options should be necessary.
  386.    But, if you are using a high speed modem at a locked baud rate, handshaking
  387.    is VERY necessary.
  388.          The are two type of handshaking: HARD and SOFT. Hard handshaking uses
  389.    the CTS/RTS lines (i.e. wires) between your modem to control data flow and
  390.    is considered the better of the two. SOFT handshaking uses two special
  391.    ASCII characters, XON and XOFF, to control handshaking. Basically, you have
  392.    to match SZModem to the type of handshaking your modem uses.
  393.          To enable HARD handshaking, specify the "/HARD" option on the command
  394.    line. To enable SOFT handshaking, specify "/SOFT". You should only specify
  395.    one, not both.
  396.          Consult your modem manual, bbs software docs, etc for more
  397.    information on handshaking.
  398.  
  399. SZTurbo
  400. -------
  401.          SZTurbo is an option that will allow you to improve file transfer
  402.    efficiency by as much as four percent. To explain how SZTurbo works,
  403.    I must discuss a little about how Zmodem itself works.
  404.          In the Zmodem specification, certain bytes cannot be transmitted
  405.    freely across the modem connection. These bytes are XON, XOFF, ZDLE (a byte
  406.    very important to Zmodem), and a few others. If for example, an XOFF
  407.    was transmitted across the modem link, it could cause difficulties.
  408.          Although these bytes may not be transmitted, they do occur in binary
  409.    files so Zmodem must find someway to transmit them. What it does is send
  410.    a ZDLE followed by byte (i.e. the XOFF) XOR 64. This translates the illegal
  411.    character to a harmless ASCII letter that may be freely sent across the
  412.    modem link.
  413.          A few quick thoughts and you should be able to see that every time
  414.    one of these "illegal" characters are encountered, two bytes (The ZDLE
  415.    and the character XOR 64) must be sent. Sending two characters instead of one
  416.    obviously adds overhead to the transfer, slowing it down.
  417.          It turns out that most of these "illegal" characters are not illegal
  418.    under most situations. Almost all current moedems are able to transfer
  419.    XONs,XOFFs, etc just fine. So basically what SZTURBO does is send these
  420.    illegal characters just like any other character. Here's a quick diagram
  421.    to help explain this:
  422.  
  423.                                      Characters sent        Character(s) sent
  424.        Character in File             without SZTurbo          with SZTurbo
  425.        -----------------          ---------------------     ----------------
  426.          ZCHAT (#14)                ZDLE (#24) "N"            ZDLE (#24) "N"
  427.          DLE   (#16)                ZDLE (#24) "P"            DLE  (#16)
  428.          XON   (#17)                ZDLE (#24) "Q"            XON  (#17)
  429.          XOFF  (#19)                ZDLE (#24) "S"            XOFF (#19)
  430.          ZDLE  (#24)                ZDLE (#24) "X"            ZDLE (#24) "X"
  431.  
  432.          As you can see, SZTurbo shortens the sequences for DLE, XON, and
  433.    XOFF from 2 characters down to one character. While this does not seem like
  434.    much, it can add up to a four percent efficiency gain. When you're paying
  435.    the long distance bill, you'll appreciate this.
  436.          Specifying "/SZTURBO" on the command line will cause your copy of
  437.    SZModem to "attempt" to engage the SZTurbo option. SZTurbo is only
  438.    available if both sides have the option specified.
  439.  
  440. Large Advance Transfer Lists
  441. ----------------------------
  442.          Starting with this version, there is support for a "large" advance
  443.    transfer list. The main difference between the normal list and the "large"
  444.    list is that the large list contains optional file descriptions as well
  445.    as the name, date, etc. The receiver or sender may browse through these
  446.    descriptions while the transfer is taking place.
  447.          The problem is, SZModem can't just make up these descriptions
  448.    itself. The sender must somehow provide SZModem with the descriptions. If
  449.    the sender is a bbs program, then the descriptions are available from
  450.    the BBS's file catalog. The descriptions must, however, still be converted
  451.    to a format that SZModem can understand.
  452.          SZModem will look for file descriptions in the file "FILEDESC.TXT"
  453.    (or "FILEDE1.TXT", "FILEDE2.TXT", etc if you are multinode) in the
  454.    directory specified by the /SZPATH option. This file follows a simple
  455.    format. It is plain ASCII with each line of the file corresponding to a
  456.    file. The filename starts at column 1 and the descriptions starts at
  457.    column 15. For example:
  458.  
  459.  
  460. ::-- Col. 1  ::--- col. 15
  461. ::           ::
  462. \/           \/
  463. SZMOD120.ZIP  Zmodem protocol with Chat, Simdos, etc
  464. GALWAR75.ZIP  Galactic Warzone version 7.5
  465. DOORDR30.ZIP  Doordriver door support routines
  466. MACH10.ZIP    Mach-10 bbs
  467.  
  468.  
  469.          When SZModem loads, providing the /NOSBL switch is not specified and
  470.    providing this file exists, the descriptions will be searched, loaded, and
  471.    sent to the receiver providing his /NORBL switch is not set.
  472.          As you have probably noticed, this format is probably not what your
  473.    bbs uses. Since I don't have information on the file formats of most BBS
  474.    packages, I had to make do with this "generic" format. Hopefully, some
  475.    bbs sysops who are programmers can write a utility to grab the necessary
  476.    descriptions out of their file catalogs and throw them into the
  477.    FILEDESC.TXT file.
  478.          Note: The FILEDESC.TXT file may be named FILEDE1.TXT or FILEDE2.TXT
  479.    depending on your configuration. The /DORINFO switch will determine which
  480.    .TXT file SZModem will look for. If no /DORINFO is specified, FILEDESC.TXT
  481.    will be used. If /DORINFO 1 was specified, FILEDE1.TXT will be loaded.
  482.          Examples:
  483.  
  484.                                                         Filedesc file used
  485.                                                         ------------------
  486.          SZMODEM SZ FOO.BAR                             FILEDESC.TXT
  487.          SZMODEM /DORINFO 1 SZ FOO.BAR                  FILEDE1.TXT
  488.          SZMODEM /DORINFO 2 SZ FOO.BAR                  FILEDE2.TXT
  489.          SZMODEM /SZPATH \protocol SZ FOO.BAR           \PROTOCOL\FILEDESC.TXT
  490.          SZMODEM /SZPATH \protocol /DORINFO 1 .....     \PROTOCOL\FILEDE1.TXT
  491.  
  492.          Now, a quick word on the /NOSBL and /NORBL switches. If you specify
  493.    /NOSBL, your copy of SZModem will not send the description info under any
  494.    circumstances. If you specify /NORBL, your SZModem will not allow another
  495.    SZModem to send the description info under any circumstances. Example:
  496.  
  497.  
  498.          Sender               Receiver                  Desc info sent
  499.          ------------------   -------------------       --------------
  500.          SZMODEM SZ ...       SZMODEM RZ ...                *YES
  501.          SZMODEM /NOSBL SZ    SZMODEM (anything)             NO
  502.          SZMODEM (anything)   SZMODEM /NORBL                 NO
  503.  
  504.          (* only if FILEDESC.TXT, FILEDE1.TXT, etc exists on sender side)
  505.  
  506.          Additional FILEDESC files may be specified using the /FILEDESC
  507.    option. Use the format "/FILEDESC x" where "x" is the path and filename
  508.    of the additional list to search. You may add as many of these additional
  509.    lists as you wish. (NOTE: Operation will occur faster if all of the
  510.    descriptions are in one file rather than many file)
  511.  
  512. File Lists
  513. ----------
  514.          If you specify @<filename> on then command line, <filename> will be
  515.    opened and any file paths contained within will be sent. For example,
  516.    suppose a textfile, "TOSEND.TXT" contained the following:
  517.  
  518.  
  519.    \DOWNLOAD\SZMOD120.ZIP
  520.    \MACH10\WELCOME.TXT
  521.    \GALWAR\TWARS.EXE
  522.  
  523.          If you called up SZModem with the command line "SZMODEM SZ
  524.    @TOSEND.TXT", SZModem would then send the three files listed above. This
  525.    allows you to specify many different filenames in an ascii file rather
  526.    than have to fit them all on the command line.
  527.          You may also specify SZModem parameters in these "file lists". You
  528.    could specify "/DORINFO 1 /SZTURBO /SZPATH \protocols", etc and then call
  529.    it up with the "@" sign rather than having to put all of those options on
  530.    the command line.
  531.  
  532. File Compression
  533. ----------------
  534.          SZModem now includes a LZW compression module which can compress
  535.    the file data as it is being sent. Although for binary and compressed data,
  536.    the LZW compression will make little difference, it can create substantial
  537.    compression for ASCII data, text files, word-processor files, etc.
  538.          By default, compression is automatically enabled for any file
  539.    with an extention other than ZIP,ZOO,PAK,ARC. If both SZModems support file
  540.    compression and there is memory for the 21k hashing table, compression
  541.    will occur on a block-by-block basis. The "packet size" display will
  542.    reflect the size of compressed data subpacket and the (real) size of the
  543.    uncompressed data in paranthesis (i.e. "Packet size....: 1398 (2048)" would
  544.    indicate that 2048 bytes were compressed into 1398 bytes).
  545.          To use the compression algorythm, an extra 21k of data space is
  546.    necessary for a special "hashing table". If there is not 21k of memory
  547.    available for SZModem, the hashing table will not be created, and
  548.    compression will be disabled.
  549.          The command line switch "/NOCOMP" may be used to force compression
  550.    to be disabled.
  551.  
  552. The Mail Reader
  553. ---------------
  554.          SZModem is equipped with a mail reader capable which allows the
  555.    sysop to read any messages in a fido-format message base. This feature is
  556.    only useful for BBS systems or mail point systems, and has no particular
  557.    interest to users.
  558.          So far, SZModem can only handle one message area. I am making
  559.    provisions to add support for more area, but that will be in a later
  560.    version.
  561.          To enable the mail reader, add the "/FIDOAREA x" switch into the
  562.    command line, with "x" being the path to your fido area. (i.e. "/FIDOAREA
  563.    I:\BINKLEY\MESSAGE"). No trailing backslash is necessary.
  564.          Then, you may use the F9 key to enter the mail reader. The "N"
  565.    and "P" keys will move you forward or reverse in the area and the SPACE
  566.    bar will scroll a message.
  567.  
  568.  
  569. Benchmarks
  570. ----------
  571.          The following chart compares the CPS readings for some various
  572.    protocols. SZMODEM ver 1.31 was used for the SZMODEM tests and DSZ1612
  573.    was used for the DSZ Zmodem, Xmodem, and ymodem tests.
  574.          The tests were performed between two AT-class machines running
  575.    at 8mhz.
  576.  
  577.                           SZMODEM    SZMODEM  DSZ     DSZ     DSZ
  578. Filename      File Size   w/SZTURBO           ZMODEM  XMODEM  YMODEM
  579. ------------  ---------   ---------  -------  ------  ------  ------
  580. SYSOP.DOC       18357        399       390      235     200    200
  581. MACHCTL.ZIP     20643        236       232      234     201    200
  582. MOUSE.COM       14249        284       274      234     202    199
  583. SIMCGA.ZIP       2406        233       233      235     200    200
  584.  
  585.  
  586.  
  587. Revison History
  588. ---------------
  589.        Version 1.00  -  First public BETA release.
  590.  
  591.                         This software has not been tested very well at
  592.                         this point. There may be trouble with high speed
  593.                         modems, COM3/4 conflicts, etc. Please report any
  594.                         bugs to my bbs listed below.
  595.  
  596.        Version 1.01  -  Fixed a problem that caused the DORINFO display
  597.                         that caused the users last name and city to be
  598.                         displayed. Now, the user's full name and city is
  599.                         displayed.
  600.  
  601.        Version 1.02  -  Added the "/SZPATH" option to allow the user
  602.                         to specify what directory the SZMODEM.LOG and
  603.                         SZXFER$$.LST files will be placed in.
  604.  
  605.                         Fixed a bug which was causing runtime error
  606.                         2 that had to do with the SZXFER$$ list.
  607.  
  608.                         Added "/DELAYTIME" option to specify time that
  609.                         SZModem will delay after a transmission is completed,
  610.                         waiting for a keypress.
  611.  
  612.                         The CHAT indicator will now blink when a remote user
  613.                         is typing in chat and the local user is in another
  614.                         window.
  615.  
  616.        Version 1.10  -  Added FREE and SIZE commands to simdos. See the
  617.                         SZMODEM.HLP file for more information.
  618.  
  619.                         Various cosmetic improvements.
  620.  
  621.                         Made the SIMDOS parser a bit more intelligent. It can
  622.                         now process commands without spaces between parameters
  623.                         such as "DIR/W" or "CD..".
  624.  
  625.                         Added DELNUL command to delete zero-length files.
  626.  
  627.                         SZModem now displays a small message if the user does
  628.                         not specify SZ or RZ. This helps new users to know
  629.                         they do in fact need to specify SZ/RZ.
  630.  
  631.                         SZModem /HELP command now available. Displays a small
  632.                         help screen of some of SZModem's command line
  633.                         parameters.
  634.  
  635.                         Major revisions to the actual ZMODEM transfer code.
  636.  
  637.                         CRC32 now used rather than CRC16 and the block check
  638.                         display now correctly reflects this. (Note: If the
  639.                         sender requests CRC16, the receiver will be stuck with
  640.                         CRC16 also)
  641.  
  642.                         Error correction will now function properly in both
  643.                         CRC32 and CRC16 modes.
  644.  
  645.                         "Last frame" display on receiver now functions
  646.                         properly.
  647.  
  648.                         Default delay time changed from 10 seconds to 5
  649.                         seconds. (See /DELAYTIME above)
  650.  
  651.                         Added an overlay version of the program (SZMODOVR.EXE)
  652.                         to allow for systems with less available memory.
  653.  
  654.        Version 1.20     Added SZTurbo option to increase transfer efficiency
  655.                         by as much as 4%. See the SZTurbo section of this doc
  656.                         for more info.
  657.  
  658.                         Added "/NBS" option to allow users to restrict
  659.                         SZModem's block size down to the standard 1024 bytes/
  660.                         block like normal zmodem.
  661.  
  662.                         The minor version identifier (i.e. .20) is now sent
  663.                         along with the major version identified (i.e. 1)
  664.  
  665.                         Message screen (F6) code revised to reduce flickering
  666.                         and add smoother scrolling.
  667.  
  668.                         Two ZChallenges are now sent between copies of SZModem
  669.                         to allow for additional information to be passed -
  670.                         version numbers, flags, etc.
  671.  
  672.                         Added provisions for LARGE Advance transfer lists.
  673.                         (See Above). The new large list allows the sender to
  674.                         send file descriptions along with the usual file info.
  675.  
  676.                         Fixed the TLIST and RLIST displays so they scroll the
  677.                         corrent number of lines.
  678.  
  679.                         Added "/FL" switch for a received file log.
  680.  
  681.        Version 1.21     Added more information to the log display.
  682.  
  683.                         Fixed a bug which caused file descriptions to be
  684.                         garbage when receiving file from a normal Zmodem.
  685.  
  686.                         Added ability to process file lists. (See above:
  687.                         File lists)
  688.  
  689.                         Added /FILEDESC option to specify additional
  690.                         filedesc files.
  691.  
  692.                         Added the /CHECKSNOW option to enable snow checking.
  693.  
  694.                         Fixed the DELNUL command in SDOS so that it does not
  695.                         try to delete files as they are being received.
  696.  
  697.                         Control-Break is now trapped and no longer aborts the
  698.                         program.
  699.  
  700.                         Added CTRL-G option to allow users to page in chat
  701.                         mode.
  702.  
  703.        Version 1.30     Default internal output buffer size has been
  704.                         changed from 256 bytes to 512 bytes.
  705.  
  706.                         Revised overlay code so hopefully SZMODOVR.EXE can
  707.                         be used by multiple nodes on a network without
  708.                         difficulty.
  709.  
  710.                         Added file compression capability. LZW compression
  711.                         routines will speed up the transmission of most
  712.                         non-compressed data.
  713.  
  714.                         Default internal input/output buffer sizes
  715.                         re-adjusted to 1k and 6k respectively.
  716.  
  717.                         Added a simple sysop mail reader to allow the sysop
  718.                         to read mail while transfer is in progress.
  719.  
  720.                         Fixed a bug with the ZChallenges that caused SZModem
  721.                         to not abort if the Zchallenges were not responded
  722.                         to.
  723.  
  724.                         Included a "Small" version which is even smaller than
  725.                         the overlay version. Left out are the games module
  726.                         and the mail reader module. The filename is
  727.                         SZMODSML.EXE.
  728.  
  729.                         Added a zip viewer to SimDos. The command "ZIPVIEW
  730.                         <filename>" will display the file directory of a
  731.                         zip file.
  732.  
  733.        Version 1.31     Added DEBUG command to simdos to allow users to
  734.                         browse through files in a hexadecimal mode.
  735.  
  736.                         EGA/VGA 43/50 line modes are available with the
  737.                         /EGA command line switch.
  738.  
  739.                         If SZTURBO is enabled and soft (Xon/Xoff) flow
  740.                         control is enabled, the SZTURBO will automatically
  741.                         be disabled.
  742.  
  743.                         Added SZCONFIG.EXE configuration utility.
  744.  
  745.                         /DL command line will enable a DSZ.LOG file log
  746.                         for compatibility with various bbs programs.
  747.  
  748.        Version 1.40     REMOVED FOSSIL SUPPORT
  749.                         There was just too little demand for use of the fossil
  750.                         interface routines and considering the overhead it was
  751.                         adding (an additional jump and compare for every
  752.                         async function can add up), the code was removed and
  753.                         the INTERNAL routines are now accessed directly.
  754.  
  755.                         Major serial code revisions. On locked baud modems,
  756.                         the keyboard I/O shouldn't slow down quite as bad
  757.                         as before. Chat may still appear choppy though.
  758.  
  759.                         Added a DORINFOx.DEF path to SZCONFIG.EXE. You may
  760.                         now set the path that SZModem will look for
  761.                         DORINFOx.DEF with SZCONFIG.EXE.
  762.  
  763.                         Added CFGPATH parameter to specify path to
  764.                         the SZMODEM.CFG file.
  765.  
  766.        Version 1.41     Added information on HandShaking to docs.
  767.  
  768.                         Added handshaking options to SZCONFIG.EXE.
  769.  
  770.                         Added locked baud capabilities with the "/LOCK"
  771.                         parameter.
  772.  
  773.  
  774. Credit to Other Authors
  775. -----------------------
  776.  
  777.        1) Turbo Pascal Zmodem Source. This software was built up from a rather
  778.           buggy source code of Zmodem in turbo pascal. The code did not list
  779.           an author.
  780.  
  781.        2) ASYNC11 package by Mark Shultz. This excellent package provides
  782.           for portions of SZModem's async support. The fossil interface is
  783.           written by myself, but I also integrated these ASYNC11 internal
  784.           routines to provide support for users without fossils.
  785.  
  786. Donations
  787. ---------
  788.        SZModem is distributed in a manner similar to shareware. I place copies
  789. of SZModem up for distribution. Users may transfer, copy, etc the software
  790. if they wish, but if you find the software useful, please send in a donation
  791. to help me support my work. Only through donations is my programming work
  792. and my BBS possible. You may send a donation to the following address. I
  793. request a donation of $20 which I feel is adequate for the work I have put
  794. into this program, but send whatever you feel is right.
  795.  
  796.                         Scott Baker
  797.                         6431 Tierra Catalina #48
  798.                         Tucson, AZ 85718
  799.  
  800.        I may also be reached through my online bulletin board:
  801.  
  802.                         The Not-Yet-Named BBS
  803.                         300,1200, 2400 baud
  804.                         (602) 577-3650 <Node 1>
  805.                         (602) 577-3419 <Node 2>
  806.                         Tucson, AZ
  807.  
  808.        The BBS always has the latest copy of SZModem (and any of my other
  809. projects) available for downloads. We are also part of FidoNet and RBBSNET
  810. and offer several file nad message areas.